from functools import lru_cache


@lru_cache(maxsize=None)
def fib(n):
    """
    斐波那契额序列 (Fibonacci sequence), 其中除第 1 个数是 0 ，第 2 个数是 1，
    其他数字是前两个数字之和。
    """
    if n < 2:
        return n
    else:
        return fib(n-1) + fib(n-2)


def show_example():
    print('No. \tfib')
    print('-' * 60)

    for n in range(100):
        print(f'{n} \t{fib(n)}')


def main():
    show_example()


if __name__ == '__main__':
    main()
